package com.vogue.supplymall.admin.business.domain.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Entity;
import javax.persistence.Table;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * The type Admin consume product.
 * 集团计费产品信息
 */
@Entity
@Table(name = "admin_consume_product")
public class AdminConsumeProduct extends BaseEntity implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = 6612705087131841304L;
    /**
     * admin集团的id
     */
    private Long organid;
    /**
     * 系统唯一注册码的id
     */
    private Long syscodeid;
    /**
     * 计费方式 1：包年 2：包月 3：按单扣费
     */
    private Integer consumetype;
    /**
     * 服务费用
     */
    private BigDecimal cost;
    /**
     * 归属业务
     */
    private String owner;
    /**
     * 提成
     */
    private BigDecimal commission;
    /**
     * 操作者id
     */
    private Long updateuserid;
    /**
     * 操作者名称
     */
    private String updateuser;
    /**
     * 每单比例
     */
    private BigDecimal singleratio;
    /**
     * 封顶
     */
    private BigDecimal upperlimit;
    /**
     * 保底
     */
    private BigDecimal minimum;
    /**
     * 禁用标志（0否 1是）
     */
    private Boolean disabledflag;
    /**
     * 消费日期-开始
     */
    @DateTimeFormat(
            pattern = "yyyy-MM-dd HH:mm:ss"
    )
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss"
    )
    private Date startdate;
    /**
     * 消费日期-结束
     */
    @DateTimeFormat(
            pattern = "yyyy-MM-dd HH:mm:ss"
    )
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss"
    )
    private Date enddate;
    /**
     * 有效类型 0当前 1续期
     */
    private Integer validtype;
    private String memo;

    public String getMemo() {
        return memo;
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }

    /**
     * Gets organid.
     *
     * @return the organid
     */
    public Long getOrganid() {
        return organid;
    }

    /**
     * Sets organid.
     *
     * @param organid the organid
     */
    public void setOrganid(Long organid) {
        this.organid = organid;
    }

    /**
     * Gets syscodeid.
     *
     * @return the syscodeid
     */
    public Long getSyscodeid() {
        return syscodeid;
    }

    /**
     * Sets syscodeid.
     *
     * @param syscodeid the syscodeid
     */
    public void setSyscodeid(Long syscodeid) {
        this.syscodeid = syscodeid;
    }

    /**
     * Gets consumetype.
     *
     * @return the consumetype
     */
    public Integer getConsumetype() {
        return consumetype;
    }

    /**
     * Sets consumetype.
     *
     * @param consumetype the consumetype
     */
    public void setConsumetype(Integer consumetype) {
        this.consumetype = consumetype;
    }

    /**
     * Gets cost.
     *
     * @return the cost
     */
    public BigDecimal getCost() {
        return cost;
    }

    /**
     * Sets cost.
     *
     * @param cost the cost
     */
    public void setCost(BigDecimal cost) {
        this.cost = cost;
    }

    /**
     * Gets owner.
     *
     * @return the owner
     */
    public String getOwner() {
        return owner;
    }

    /**
     * Sets owner.
     *
     * @param owner the owner
     */
    public void setOwner(String owner) {
        this.owner = owner;
    }

    /**
     * Gets commission.
     *
     * @return the commission
     */
    public BigDecimal getCommission() {
        return commission;
    }

    /**
     * Sets commission.
     *
     * @param commission the commission
     */
    public void setCommission(BigDecimal commission) {
        this.commission = commission;
    }

    /**
     * Gets updateuserid.
     *
     * @return the updateuserid
     */
    public Long getUpdateuserid() {
        return updateuserid;
    }

    /**
     * Sets updateuserid.
     *
     * @param updateuserid the updateuserid
     */
    public void setUpdateuserid(Long updateuserid) {
        this.updateuserid = updateuserid;
    }

    /**
     * Gets updateuser.
     *
     * @return the updateuser
     */
    public String getUpdateuser() {
        return updateuser;
    }

    /**
     * Sets updateuser.
     *
     * @param updateuser the updateuser
     */
    public void setUpdateuser(String updateuser) {
        this.updateuser = updateuser;
    }

    /**
     * Gets singleratio.
     *
     * @return the singleratio
     */
    public BigDecimal getSingleratio() {
        return singleratio;
    }

    /**
     * Sets singleratio.
     *
     * @param singleratio the singleratio
     */
    public void setSingleratio(BigDecimal singleratio) {
        this.singleratio = singleratio;
    }

    /**
     * Gets upperlimit.
     *
     * @return the upperlimit
     */
    public BigDecimal getUpperlimit() {
        return upperlimit;
    }

    /**
     * Sets upperlimit.
     *
     * @param upperlimit the upperlimit
     */
    public void setUpperlimit(BigDecimal upperlimit) {
        this.upperlimit = upperlimit;
    }

    /**
     * Gets minimum.
     *
     * @return the minimum
     */
    public BigDecimal getMinimum() {
        return minimum;
    }

    /**
     * Sets minimum.
     *
     * @param minimum the minimum
     */
    public void setMinimum(BigDecimal minimum) {
        this.minimum = minimum;
    }

    /**
     * Gets disabledflag.
     *
     * @return the disabledflag
     */
    public Boolean getDisabledflag() {
        return disabledflag;
    }

    /**
     * Sets disabledflag.
     *
     * @param disabledflag the disabledflag
     */
    public void setDisabledflag(Boolean disabledflag) {
        this.disabledflag = disabledflag;
    }

    /**
     * Gets startdate.
     *
     * @return the startdate
     */
    public Date getStartdate() {
        return startdate;
    }

    /**
     * Sets startdate.
     *
     * @param startdate the startdate
     */
    public void setStartdate(Date startdate) {
        this.startdate = startdate;
    }

    /**
     * Gets enddate.
     *
     * @return the enddate
     */
    public Date getEnddate() {
        return enddate;
    }

    /**
     * Sets enddate.
     *
     * @param enddate the enddate
     */
    public void setEnddate(Date enddate) {
        this.enddate = enddate;
    }

    /**
     * Gets validtype.
     *
     * @return the validtype
     */
    public Integer getValidtype() {
        return validtype;
    }

    /**
     * Sets validtype.
     *
     * @param validtype the validtype
     */
    public void setValidtype(Integer validtype) {
        this.validtype = validtype;
    }
}
